#----------------------------------------
# 可执行文件名称
#----------------------------------------
app = appstart

ifeq ($(OS), Windows_NT)
	exec = $(app).exe
else
	exec = $(app)
endif

#----------------------------------------
# 交叉编译设置
#----------------------------------------
set_env += :
# set_env += ; export CGO_CFLAGS="-Os -ffunction-sections -fdata-sections"
# set_env += ; export CGO_FFLAGS="-Os"
# set_env += ; export CGO_LDFLAGS="-Os"
# set_env += ; export STAGING_DIR=/opt/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin:$(STAGING_DIR)
# set_env += ; export CC=/mnt/extension/docker_share/openwrt_sdk_2102/openwrt-b2ae423/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/mipsel-openwrt-linux-gcc
# set_env += ; export CGO_ENABLED=1; export GOOS=linux; export GOMIPS=softfloat; export GOARCH=mipsle
# set_env += ; export GOOS=windows

#----------------------------------------
# 链接参数设置
#----------------------------------------
# LD_FLAG = -ldflags="-s -w"

#----------------------------------------
# 编译后命令执行
#----------------------------------------
script_do := :
ifeq ($(OS), Windows_NT)
	script_do += ;
else
	script_do += ; cp ./AppInfo.json_linux /usr/local/sbin/config/AppInfo.json
	script_do += ; cp main /usr/local/sbin/appstart
endif

#----------------------------------------
# 编译前准备
#----------------------------------------
src := $(shell find . -name "*.go")
inti_script := $(shell basename $(shell pwd))

all: ${exec}

$(exec):  $(src) Makefile
	$(set_env); go build $(LD_FLAG) -o $@
	# $(script_do)

zip: all
	upx -9 ./$(exec)

up: all
	scp ./$(exec) root@10.10.10.1:/tmp

init:
	go mod init $(inti_script)
	go mod tidy

update:
	go mod tidy

.PHONY: clean

clean:
	go clean
